实训七 排序操作
一、实训目的
1. 掌握常见的排序算法的思想及其适用条件。
2. 掌握常见的排序算法的程序实现。
二、考核办法
必做题部分全做得3分,选做题部分满分2分,至少选一题。
三、实训内容
1.必做内容:(满分3分)
输入一组关键字序列分别实现下列排序:
1. 实现简单选择排序。void SelectSort(SeqList *s)
2. 实现直接插入排序。void InsertSort(SeqList *p)
3.实现快速排序算法。int Partition(SeqList *tb1,int low,int high)
4. 实现冒泡排序算法。void bublesort(SeqList *r)
5.在主函数中设计一个简单的菜单,分别测试上述算法。
6.结构体部分代码:
typedef struct
{
int data[10];
int last;
}SeqList;
SeqList *init_SeqList()
{
SeqList *L1;
L1=malloc(sizeof(SeqList));
L1->last=-1;
return L1;
}
2. 选做内容:(满分2分)
1. 采用几组不同数据测试算法1—算法4的比较次数和移动次数。
2.一个线性表中的元素为正整数和负整数。试设计一个算法,将正整数和负整数分开,使线性表的前一半为负整数,后一半为正整数。
|